package com.mianyang.zhangsan.service;

import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mianyang.zhangsan.model.dto.SecProblemAnswerDto;
import com.mianyang.zhangsan.model.entity.SecPaperBank;
import com.mianyang.zhangsan.model.entity.SecProblem;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mianyang.zhangsan.model.entity.SecProblemGroup;

import java.util.List;
import java.util.function.Function;

/**
* @author jiangjr
*/
public interface SecProblemService extends IService<SecProblem> {

    /**
     * 查看题库题目
     * @param problem 试题描述
     * @param current 当前页
     * @param pageSize 页码
     * @return 题目
     */
    Page<SecProblem> selectProOfBank(SecProblem problem, Integer current, Integer pageSize);

    /**
     * 随机获取题库中的题目
     * @param bankId 题库编号
     * @param num 数量
     * @param type 类型
     * @return 题目
     */
    List<SecProblem> selectProblemByRandom(Long bankId, Integer num, Integer type);

    /**
     * 分组查询数据
     * @param column 分组字段
     * @return 分组数据
     */
    List<SecProblemGroup> selectDataGroupBy(String column);

    /**
     * 更新问题
     * @param problemInfo 问题信息
     */
    void updateProblemAndAnswer(SecProblemAnswerDto problemInfo);

    /**
     * 删除问题
     * @param problemId 问题编号
     */
    void deleteProblemAndAnswer(Long problemId);
}
